home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.text.html;
-
- import java.awt.event.ActionEvent;
- import java.io.IOException;
- import javax.swing.JEditorPane;
- import javax.swing.text.AbstractDocument;
- import javax.swing.text.BadLocationException;
- import javax.swing.text.DefaultStyledDocument;
- import javax.swing.text.Element;
- import javax.swing.text.JTextComponent;
- import javax.swing.text.StyledEditorKit;
-
- public class HTMLEditorKit$InsertHTMLTextAction extends HTMLEditorKit.HTMLTextAction {
- protected String html;
- protected HTML.Tag parentTag;
- protected HTML.Tag addTag;
- protected HTML.Tag alternateParentTag;
- protected HTML.Tag alternateAddTag;
- boolean adjustSelection;
-
- public HTMLEditorKit$InsertHTMLTextAction(String var1, String var2, HTML.Tag var3, HTML.Tag var4) {
- this(var1, var2, var3, var4, (HTML.Tag)null, (HTML.Tag)null);
- }
-
- public HTMLEditorKit$InsertHTMLTextAction(String var1, String var2, HTML.Tag var3, HTML.Tag var4, HTML.Tag var5, HTML.Tag var6) {
- this(var1, var2, var3, var4, var5, var6, true);
- }
-
- HTMLEditorKit$InsertHTMLTextAction(String var1, String var2, HTML.Tag var3, HTML.Tag var4, HTML.Tag var5, HTML.Tag var6, boolean var7) {
- super(var1);
- this.html = var2;
- this.parentTag = var3;
- this.addTag = var4;
- this.alternateParentTag = var5;
- this.alternateAddTag = var6;
- this.adjustSelection = var7;
- }
-
- public void actionPerformed(ActionEvent var1) {
- JEditorPane var2 = ((StyledEditorKit.StyledTextAction)this).getEditor(var1);
- if (var2 != null) {
- HTMLDocument var3 = ((HTMLEditorKit.HTMLTextAction)this).getHTMLDocument(var2);
- int var4 = ((JTextComponent)var2).getSelectionStart();
- int var5 = ((AbstractDocument)var3).getLength();
- boolean var6;
- if (!this.insertIntoTag(var2, var3, var4, this.parentTag, this.addTag) && this.alternateParentTag != null) {
- var6 = this.insertIntoTag(var2, var3, var4, this.alternateParentTag, this.alternateAddTag);
- } else {
- var6 = true;
- }
-
- if (this.adjustSelection && var6) {
- this.adjustSelection(var2, var3, var4, var5);
- }
- }
-
- }
-
- void adjustSelection(JEditorPane var1, HTMLDocument var2, int var3, int var4) {
- int var5 = ((AbstractDocument)var2).getLength();
- if (var5 != var4 && var3 < var5) {
- if (var3 > 0) {
- String var6;
- try {
- var6 = ((AbstractDocument)var2).getText(var3 - 1, 1);
- } catch (BadLocationException var7) {
- var6 = null;
- }
-
- if (var6 != null && var6.length() > 0 && var6.charAt(0) == '\n') {
- ((JTextComponent)var1).select(var3, var3);
- } else {
- ((JTextComponent)var1).select(var3 + 1, var3 + 1);
- }
- } else {
- ((JTextComponent)var1).select(1, 1);
- }
- }
-
- }
-
- protected void insertAtBoundry(JEditorPane var1, HTMLDocument var2, int var3, Element var4, String var5, HTML.Tag var6, HTML.Tag var7) {
- boolean var10 = var3 == 0;
- Element var9;
- if (var3 <= 0 && var4 != null) {
- var9 = var4;
- } else {
- Element var8;
- for(var8 = ((DefaultStyledDocument)var2).getDefaultRootElement(); var8 != null && var8.getStartOffset() != var3 && !var8.isLeaf(); var8 = var8.getElement(var8.getElementIndex(var3))) {
- }
-
- var9 = var8 != null ? var8.getParentElement() : null;
- }
-
- if (var9 != null) {
- int var11 = 0;
- int var12 = 0;
- if (var10 && var4 != null) {
- for(Element var16 = var9; var16 != null && !var16.isLeaf(); ++var11) {
- var16 = var16.getElement(var16.getElementIndex(var3));
- }
- } else {
- Element var14 = var9;
- --var3;
-
- while(var14 != null && !var14.isLeaf()) {
- var14 = var14.getElement(var14.getElementIndex(var3));
- ++var11;
- }
-
- var14 = var9;
- ++var3;
-
- while(var14 != null && var14 != var4) {
- var14 = var14.getElement(var14.getElementIndex(var3));
- ++var12;
- }
- }
-
- var11 = Math.max(0, var11 - 1);
- this.insertHTML(var1, var2, var3, var5, var11, var12, var7);
- }
-
- }
-
- protected void insertHTML(JEditorPane var1, HTMLDocument var2, int var3, String var4, int var5, int var6, HTML.Tag var7) {
- try {
- ((HTMLEditorKit.HTMLTextAction)this).getHTMLEditorKit(var1).insertHTML(var2, var3, var4, var5, var6, var7);
- } catch (IOException var9) {
- throw new RuntimeException("Unable to insert: " + var9);
- } catch (BadLocationException var10) {
- throw new RuntimeException("Unable to insert: " + var10);
- }
- }
-
- boolean insertIntoTag(JEditorPane var1, HTMLDocument var2, int var3, HTML.Tag var4, HTML.Tag var5) {
- Element var6 = ((HTMLEditorKit.HTMLTextAction)this).findElementMatchingTag(var2, var3, var4);
- if (var6 != null && var6.getStartOffset() == var3) {
- this.insertAtBoundry(var1, var2, var3, var6, this.html, var4, var5);
- return true;
- } else {
- if (var3 > 0) {
- int var7 = ((HTMLEditorKit.HTMLTextAction)this).elementCountToTag(var2, var3 - 1, var4);
- if (var7 != -1) {
- this.insertHTML(var1, var2, var3, this.html, var7, 0, var5);
- return true;
- }
- }
-
- return false;
- }
- }
- }
-